The present invention concerns a method and a device for transmitting data. It is directed, in particular, to video data packet scheduling that is adapted to the congestion control mechanism. More particularly still, the present invention has an application in a client-server application for video transmission over an unreliable packet network of which the bandwidth varies with time, to mitigate the limits of a congestion control mechanism.
A brief description is given below of a principle for congestion control. As networks have a limited bandwidth and are shared by several applications whose behavior is difficult to predict, it is necessary to control the rate of those applications. Moreover, without control, the network would continually be subject to congestion phenomena leading to data losses. These control methods are generally termed “methods of rate control or regulation” or “congestion control method. They enable each source to transmit data with a rate that is compatible with the capacities of the network at a given time. Most of the applications for transmission over networks are governed by TCP (acronym for “Transmission Control Protocol”). This protocol uses a congestion control algorithm termed AIMD (acronym for “Additive Increase, Multiplicative Decrease”). This algorithm consists of slowly increasing the transmission rate so long as no packet loss occurs. As soon as a packet loss is observed by the source, the rate thereof is divided by two. This algorithm enables sharing of the network resources. However, the TCP protocol was defined essentially for file transfer applications without time constraint. Furthermore, the algorithm for congestion control of TCP gives rise to variations in rate which are not compatible with applications requiring a quality of service that is constant or that slowly varies over time. This protocol is thus not adapted for the transfer of videos. For this type of application, different congestion control algorithms have therefore been sought that must however be compatible with TCP. To be precise, it was a matter of continuing to share the bandwidths available on the networks equitably, as TCP would do, but without the drawbacks identified in relation to that TCP. Even if certain time-constrained applications continued to use versions of AIMD modified to a greater or lesser extent, other more demanding applications used other protocols, such as “TFRC” (acronym for “TCP-Friendly Rate Control”). TFRC is a congestion control algorithm adapted to video applications. It provides equitable sharing of the available bandwidth between the TCP applications and the video applications. This algorithm is based on the following equation for estimating the bandwidth available on the network.
  X  =      S                  R        ×                              2            ×            b            ×                          p              /              3                                          +              (                              t            RTO                    ×          3          ×                                    3              ×              b              ×                              p                /                8                                              ×          p          ×                      (                          1              +                              32                ×                                  p                  2                                                      )                          )            in which equation:                X is the estimation of the bandwidth available on the network,        R is the Round Trip Time, or “RTT”, of the packets on the network,        b is the number of packets acknowledged by a TCP acknowledgement of receipt.        p is the loss event rate on the network and        tRTO is the period of wait before retransmission.        
A loss event is a series of consecutive packet losses.
In the article “Optimal Scheduling for Streaming of Scalable Media”, Z. Miao, A. Ortega, Proc. of Asilomar Conf. on Signals, Systems and Computers, Pacific Grove, Calif., October-November 2000, the authors propose a method of scheduling packets, each packet transporting an image in a given scalability layer. This method is based on a relatively complex evaluation of the importance of each packet depending on the distortion induced by the transported images, the dependencies between the images, the reception time constraints of the images, the error rate on the channel, the RTT, the rate available on the network, etc. The transmission order of the packets is then determined depending on their importance.
However, this method considers the value of rate estimated by its rate control algorithm as reliable. However, if the example is taken of TFRC and AIMD, these algorithms are not totally reliable. This is because the evaluation of the rate relies on the detection of losses on the network. If no loss occurs, these algorithms tend to increase the rate of the source, considering that the non-detection of losses implies freeing up of bandwidth on the network. Yet this non-detection of losses may be the consequence of two situations. In a first situation, it may, in fact, mean that bandwidth has been freed up on the network and that this available bandwidth may be used. In another situation, a source transmits at a rate very close to the rate available on the network, the rate of losses is practically zero and no congestion occurs. However, any further increase in rate would lead to packet losses.
As they are unable to differentiate between these two situations, the congestion control algorithms overassess the rate that is still available and the risk of losses to come increases. It would appear to be advantageous to avoid the transmission of important data during these risky periods. The document US 2003/231,589 proposes a solution based on the distinction between useful rate and overall rate of the source. The useful rate is here the rate of a video source alone. This source is followed by a redundancy generation module of FEC form (FEC being the acronym for “Forward Error Correction”). The combination of the rate of the source and the redundancy constitutes the overall rate. A congestion control algorithm re-updates the overall rate with a period P1 whereas the useful rate is re-updated only with a period P2 greater than P1. The rate of the redundancy is thus adjusted to the value of the difference between the useful rate and the overall rate. This solution makes it possible to not to directly increase the rate of the source at each increase of the overall rate. However, this system is not adaptive. The periods P1 and P2 are constant, which adversely affects the reactivity of the system. Furthermore, this method is implemented only in case of rate increase and provides no solution in case of rate reduction. Lastly, the objective of this method is to avoid rapid variations in the quality of the video.